package br.com.certificacao.Conjuntos.treemap;

import java.util.Map;
import java.util.TreeMap;

/**
 * objetivo desta classe e criar um TreeMap de objects, em ordem crescente.
 * 
 * @author Sidney
 * 
 */
class Funcionario implements Comparable {
	String nome;
	Integer id;

	Funcionario(String nome, Integer id) {
		this.nome = nome;
		this.id = id;
	}

	public boolean equals(Object func) {
		Funcionario f = (Funcionario) func;
		if (f.id == this.id)
			return true;
		return false;
	}

	public int hashCode() {
		return id;
	}

	public String toString() {
		return "Nome: " + nome + "Id: " + id + " ";
	}

	@Override
	public int compareTo(Object o) {
		Funcionario f = (Funcionario)o;
		return this.id.compareTo(f.id);
	}	
}

class Veiculo {
	String modelo;

	Veiculo(String modelo) {
		this.modelo = modelo;
	}
	public String toString(){
		return " Modelo do Carro: " + modelo + " ";
	}
}

public class TesteMapObject {
	public static void main(String[] args) {
		Map lista = new TreeMap();
		Funcionario f1 = new Funcionario(" Bruno " , 12);//primeiro
		Funcionario f2 = new Funcionario(" Felipe ", 13);
		Funcionario f3 = new Funcionario(" Marta ", 122);//quarto
		Funcionario f4 = new Funcionario(" Roberta ",12);
		Funcionario f5 = new Funcionario(" Claudia ",19);//Terceiro
		Funcionario f6 = new Funcionario(" Ana ", 13);//segundo
		Veiculo v1 = new Veiculo("A");
		Veiculo v2 = new Veiculo("B");
		Veiculo v3 = new Veiculo("C");
		Veiculo v4 = new Veiculo("A");
		Veiculo v5 = new Veiculo("D");
		Veiculo v6 = new Veiculo("C");
		lista.put(f1, v6);// == f4
		lista.put(f2, v5);//== f6
		lista.put(f3, v4);//valor unico
		lista.put(f4, v3);//== f1
		lista.put(f5, v2);//valor unico
		lista.put(f6, v1);//== f2
		System.out.println(lista);
	}

}
